//
// Created by Lenovo on 2024/3/7.
//
#include <bits/stdc++.h>
using namespace std;
//钥匙和房间
class Solution {
public:
    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        int n=rooms.size();
        vector<bool> visited(n, false);     //各个房间是否访问过
        queue<int> que;
        que.push(0);
        visited[0]=true;
        while(!que.empty()){
            int cur=que.front();
            que.pop();
            vector<int> list=rooms[cur];
            for(int i=0;i<list.size();i++){
                if(!visited[list[i]]){
                    que.push(list[i]);
                    visited[list[i]]=true;
                }
            }
        }
        bool res= true;
        for(int i=0;i<visited.size();i++){
            if(!visited[i]) res= false;
        }
        return res;
    }
};